
<!DOCTYPE html>
<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
<head>
  <meta charset="utf-8">
  <title>ksnowlv</title>
  <meta name="author" content="律威">

  
  <meta name="description" content="当iOS App出现bug时，由于不能很快上架，如何紧急修复bug呢？ 可以通过Lua给app打补丁。 将脚本放到后台服务器，App从服务器下载Lua代码，并在本地执行，实现了动态替换oc代码,快速修复bug。 建议尽量少用，或不用。非紧急bug尽量不用。 示例代码 1.Create-a-More &hellip;">
  

  <!-- http://t.co/dKP3o1e -->
  <meta name="HandheldFriendly" content="True">
  <meta name="MobileOptimized" content="320">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  
  <link rel="canonical" href="http://ksnowlv.github.io/blog/page/3">
  <link href="/favicon.png" rel="icon">
  <link href="/stylesheets/screen.css" media="screen, projection" rel="stylesheet" type="text/css">
  <link href="/atom.xml" rel="alternate" title="ksnowlv" type="application/atom+xml">
  <script src="/javascripts/modernizr-2.0.js"></script>
  <script src="//ajax.useso.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
  <script>!window.jQuery && document.write(unescape('%3Cscript src="./javascripts/lib/jquery.min.js"%3E%3C/script%3E'))</script>
  <script src="/javascripts/octopress.js" type="text/javascript"></script>
  <!--Fonts from Google"s Web font directory at http://google.com/webfonts -->
<link href="http://fonts.useso.com/css?family=PT+Serif:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">
<link href="http://fonts.useso.com/css?family=PT+Sans:regular,italic,bold,bolditalic" rel="stylesheet" type="text/css">

  
  <script type="text/javascript">
    var _gaq = _gaq || [];
     _gaq.push(['_setAccount', 'UA-39546615-2']);
    // _gaq.push(['_trackPageview']);

    // (function() {
    //   var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    //   ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    //   var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    // })();

    _gaq.push(['_trackPageview']);

      (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src='http://droidyue-tools.qiniudn.com/ga.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
      })();
  </script>


</head>

<body   >
  <header role="banner"><hgroup>
  <h1><a href="/">ksnowlv</a></h1>
  
    <h2>回顾过去,总结以往;立足现在,铭记当下;技术为主,笔记而已.</h2>
  
</hgroup>

</header>
  <nav role="navigation"><ul class="subscription" data-subscription="rss">
  <li><a href="/atom.xml" rel="subscribe-rss" title="subscribe via RSS">RSS</a></li>
  
</ul>
  
<form action="http://google.com/search" method="get">
  <fieldset role="search">
    <input type="hidden" name="q" value="site:ksnowlv.github.io" />
    <input class="search" type="text" name="q" results="0" placeholder="Search"/>
  </fieldset>
</form>
  
<ul class="main-navigation">
  <li><a href="/">博客首页</a></li>
  <li><a href="/blog/archives">文章列表</a></li>
  <!-- <li><a href="/about-me">关于我</a></li>
 -->
</ul>

</nav>
  <div id="main">
    <div id="content">
      <div class="blog-index">
  
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/13/gei-iosying-yong-da-bu-ding/">给iOS应用打补丁</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-13T14:55:00+08:00" pubdate data-updated="true">Nov 13<span>th</span>, 2014</time>
        
         | <a href="/blog/2014/11/13/gei-iosying-yong-da-bu-ding/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><p>当iOS App出现bug时，由于不能很快上架，如何紧急修复bug呢？</p>

<p><strong>可以通过Lua给app打补丁</strong>。</p>

<pre><code>将脚本放到后台服务器，App从服务器下载Lua代码，并在本地执行，实现了动态替换oc代码,快速修复bug。
</code></pre>

<blockquote><p>建议尽量少用，或不用。非紧急bug尽量不用。</p></blockquote>

<h3>示例代码</h3>

<h4>1.<a href="https://github.com/mmin18/Create-a-More-Flexible-App">Create-a-More-Flexible-App</a></h4>

<h4>2.<a href="http://github.com/probablycorey/wax">Wax项目</a></h4>

<h4>3.<a href="https://github.com/mmin18/WaxPatch">WaxPatch</a></h4>
</div>
  
  


    </article>
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/12/iOS-wang-luo-chang-lian-jie-yu-duan-lian-jie/">iOS网络长连接与短连接</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-12T15:15:00+08:00" pubdate data-updated="true">Nov 12<span>th</span>, 2014</time>
        
         | <a href="/blog/2014/11/12/iOS-wang-luo-chang-lian-jie-yu-duan-lian-jie/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><h3>长连接</h3>

<pre><code>client与server先建立连接，连接建立后不断开，操持连接，然后进行数据的发送和接收。
由于这种形式的网络通讯方式，网络连接一直存在。
常用于P2P(点对点)通信。像IM类的产品
</code></pre>

<h3>短连接</h3>

<pre><code>client与server每进行一次报文收发交易时才进行通讯连接，交易完毕后立即断开连接。
此方式常用于一点对多点通讯。C/S通信。 
</code></pre>

<h3>长连接有两种：</h3>

<h4>1. 基于socket的网络通讯。</h4>

<blockquote><p>a.要对通讯协议格式，包括消息头，数据包头等特别清楚，可以实现同步异步机制，可以向客户端推送消息。</p>

<p>b.更少的建立和关闭tcp连接，可以减少网络延时和开销。 在使用https连接时更显著。可以减少多次建立高消耗的SSL/TLS握手</p>

<p>c.实现socket对各种不同类型的网络的穿透，才是真正的麻烦，在某些省份或地区是无法实现网络穿透的。</p></blockquote>

<h4>2.基于http的网络通讯</h4>

<blockquote><p>a.例如spdy协议，iOS8中，系统网络接口提供了对spdy的支持。</p>

<p>b.即使是长连接，http也需要client先发起请求(<strong>除了spdy协议，spdy协议支持服务端推送</strong>)。在实际应用中有一些限制。</p></blockquote>

<h4>总体为说，长连接的优点</h4>

<pre><code>1.通过开启、关闭更少的TCP连接，节约CPU时间和内存. 
2.通过减少TCP开启引起的包的数目，降低网络阻塞.
</code></pre>

<h4>缺点</h4>

<pre><code>消耗服务器和客户端资源，像电量，网络流量等    
</code></pre>

<p>在保持长连时，需要发送一些心跳包.在iOS/android移动终端中，</p>

<ul>
<li>1.心跳信息是单方向的，只有终端发到应用服务器；</li>
<li>2.心跳信息的周期比较长，比如旧版QQ的心跳周期为30s，新版QQ为180s，微信为300s，Google原生应用为1680s左右。</li>
</ul>


<h3>短连接</h3>

<pre><code>多用于操作频繁、点对点的通讯，且连接数不是太多的情况，应用较为普遍。
</code></pre>

<p>参考资料：
<a href="http://labs.chinamobile.com/mblog/31189_199441">试试把APP心跳的前因后果解释更简单明白？</a>
<a href="http://labs.chinamobile.com/mblog/104209_199343">透视互联网APP的心跳机制</a>
<a href="http://blog.csdn.net/totogogo/article/details/7329542">Android/iOS Notification feature</a></p>
</div>
  
  


    </article>
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/11/ios-she-bei-huo-qu-dns-ip/">iOS设备获取DNS-IP</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-11T17:56:00+08:00" pubdate data-updated="true">Nov 11<span>th</span>, 2014</time>
        
         | <a href="/blog/2014/11/11/ios-she-bei-huo-qu-dns-ip/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><p>iOS设备如何获取DNS-IP呢？
示例如下：</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
</pre></td><td class='code'><pre><code class='objective-c'><span class='line'><span class="cp">#include &lt;arpa/inet.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;ifaddrs.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;resolv.h&gt;</span>
</span><span class='line'><span class="cp">#include &lt;dns.h&gt;</span>
</span><span class='line'>
</span><span class='line'><span class="k">-</span> <span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="nf">outPutDNSServers</span>
</span><span class='line'><span class="p">{</span>
</span><span class='line'>    <span class="n">res_state</span> <span class="n">res</span> <span class="o">=</span> <span class="n">malloc</span><span class="p">(</span><span class="k">sizeof</span><span class="p">(</span><span class="k">struct</span> <span class="n">__res_state</span><span class="p">));</span>
</span><span class='line'>
</span><span class='line'>    <span class="kt">int</span> <span class="n">result</span> <span class="o">=</span> <span class="n">res_ninit</span><span class="p">(</span><span class="n">res</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'>    <span class="k">if</span> <span class="p">(</span> <span class="n">result</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">)</span>
</span><span class='line'>    <span class="p">{</span>
</span><span class='line'>        <span class="k">for</span> <span class="p">(</span> <span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">res</span><span class="o">-&gt;</span><span class="n">nscount</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span> <span class="p">)</span>
</span><span class='line'>        <span class="p">{</span>
</span><span class='line'>            <span class="n">NSString</span> <span class="o">*</span><span class="n">s</span> <span class="o">=</span> <span class="p">[</span><span class="n">NSString</span> <span class="n">stringWithUTF8String</span> <span class="o">:</span>  <span class="n">inet_ntoa</span><span class="p">(</span><span class="n">res</span><span class="o">-&gt;</span><span class="n">nsaddr_list</span><span class="p">[</span><span class="n">i</span><span class="p">].</span><span class="n">sin_addr</span><span class="p">)];</span>
</span><span class='line'>
</span><span class='line'>            <span class="n">NSLog</span><span class="p">(</span><span class="s">@&quot;%@&quot;</span><span class="p">,</span><span class="n">s</span><span class="p">);</span>
</span><span class='line'>        <span class="p">}</span>
</span><span class='line'>    <span class="p">}</span>
</span><span class='line'>    <span class="k">else</span>
</span><span class='line'>         <span class="n">NSLog</span><span class="p">(</span><span class="s">@&quot;%@&quot;</span><span class="p">,</span><span class="s">@&quot; res_init result != 0&quot;</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'>    <span class="n">res_nclose</span><span class="p">(</span><span class="n">res</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'>
</span><span class='line'><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>


<p></p>

<p>另外添加<strong>libresolv.dylib</strong></p>

<p>日志输出：</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='objective-c'><span class='line'><span class="mi">2014</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">11</span> <span class="mi">17</span><span class="o">:</span><span class="mi">52</span><span class="o">:</span><span class="mf">03.111</span> <span class="n">NetWorkInfoTest</span><span class="p">[</span><span class="mi">1870</span><span class="o">:</span><span class="mi">2041786</span><span class="p">]</span> <span class="mf">10.32.255.10</span>
</span><span class='line'><span class="mi">2014</span><span class="o">-</span><span class="mi">11</span><span class="o">-</span><span class="mi">11</span> <span class="mi">17</span><span class="o">:</span><span class="mi">52</span><span class="o">:</span><span class="mf">03.112</span> <span class="n">NetWorkInfoTest</span><span class="p">[</span><span class="mi">1870</span><span class="o">:</span><span class="mi">2041786</span><span class="p">]</span> <span class="mf">10.32.222.10</span>
</span></code></pre></td></tr></table></div></figure>

</div>
  
  


    </article>
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/10/axure-zhi-zhong-ji-qi/">Axure之中继器</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-10T17:13:00+08:00" pubdate data-updated="true">Nov 10<span>th</span>, 2014</time>
        
         | <a href="/blog/2014/11/10/axure-zhi-zhong-ji-qi/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><p>axure中继器，可以添加/移除/更新中继器的项目。</p>

<p>我们制作一个demo，效果如下：
<img src="/images/post/2014-11-10-axure-zhi-zhong-ji-qi/repeater_result.png" alt="image" /></p>

<p>制作使用中继器的主界面
<img src="/images/post/2014-11-10-axure-zhi-zhong-ji-qi/repeater_overview.png" alt="image" /></p>

<p>制作使用中继器的项
<img src="/images/post/2014-11-10-axure-zhi-zhong-ji-qi/repeater_item.png" alt="image" /></p>

<p>源文件见<a href="https://github.com/ksnowlv/axure-demo/blob/master/axure_repeater.rp">axure_repeater.rp</a></p>
</div>
  
  


    </article>
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/06/axure-zhi-dong-tai-mian-ban/">Axure之动态面板</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-06T16:09:00+08:00" pubdate data-updated="true">Nov 6<span>th</span>, 2014</time>
        
         | <a href="/blog/2014/11/06/axure-zhi-dong-tai-mian-ban/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><h3>axure动态面板</h3>

<pre><code>一个可以在层或状态中装有其他部件的容器.可以包含一个或多个状态，并且每个状态中可以包含多个部件.
一个动态面板状态只能在同一时间看到一次.使用交互你可以隐藏/显示动态面板及设置当前动态面板状态的可见性.
</code></pre>

<h3>样例：</h3>

<p>以淘宝和支付宝PC登陆页面，简单示例：</p>

<h4>1.动态面板主界面</h4>

<p><img src="/images/post/2014-11-06-axure-zhi-dong-tai-mian-ban/axure_dynamic_panel.png" alt="image" /></p>

<h4>2.淘宝登陆页面</h4>

<p><img src="/images/post/2014-11-06-axure-zhi-dong-tai-mian-ban/axure_taobao_state.png" alt="image" /></p>

<h4>3.支付宝登陆页面</h4>

<p><img src="/images/post/2014-11-06-axure-zhi-dong-tai-mian-ban/axure_pay_state.png" alt="image" /></p>

<p>源文件可参看：<a href="https://github.com/ksnowlv/axure-demo/blob/master/axure_dynamic_panel.rp">axure_dynamic_panel.rp</a></p>
</div>
  
  


    </article>
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/04/uml-tu-xiao-jie/">UML图小结</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-04T17:13:00+08:00" pubdate data-updated="true">Nov 4<span>th</span>, 2014</time>
        
         | <a href="/blog/2014/11/04/uml-tu-xiao-jie/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><h3>1.活动图VS时序图</h3>

<pre><code>活动图从用户的角度描述用例
时序图从对象间的交互描述用例
</code></pre>

<h3>2. 时序图VS协作图</h3>

<pre><code>时序图从对象间的交互描述用例。强调对象交互的时间次序。
协作图从对象间的交互描述用例。强调对象交互的空间结构。
</code></pre>

<p> 时序图和协作图在语义上是等价的，所以时序图和协作图可以彼此转换而不会损失信息</p>
</div>
  
  


    </article>
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/04/uml-zu-jian-tu/">Uml组件图</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-04T16:09:00+08:00" pubdate data-updated="true">Nov 4<span>th</span>, 2014</time>
        
         | <a href="/blog/2014/11/04/uml-zu-jian-tu/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><h3>组件图(Component diagram)</h3>

<pre><code>显示系统组件间的结构关系组件图,有助于直观显示系统的高级结构以及这些结构通过接口提供和使用的服务行为.
</code></pre>

<h3>组件图示例</h3>

<p><img src="/images/post/2014-11-04-uml-zu-jian-tu/component_diagram.png" alt="image" /></p>

<p>Store组件提供了<strong>OrderEntry</strong> 接口,并要求使用<strong>Account</strong>接口。
Store组件由三个组件组成：</p>

<ul>
<li>1.Order组件</li>
<li>2.Customer组件</li>
<li>3.Product组件。</li>
</ul>


<blockquote><p>注意Store的 OrderEntry 和Account接口符号在组件的边缘上为何有一个方块？</p>

<p>这一个方块被称为一个端口。单纯感觉来说，端口提供一种方法，它显示建模组件所 提供/要求 的接口如何与它里面的部分相关联。 通过使用端口，我们可以从外部实例中分离出Store组件的内部部件。</p></blockquote>

<p> OrderEntry 端口代表Order组件的 OrderEntry 接口，表示Store组件提供该接口。
Account端口代表内部的Customer组件要求使用的Account接口必须分配给Store组件，表示Store组件要求使用该接口。</p>
</div>
  
  


    </article>
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/04/uml-xie-zuo-tu/">Uml协作图</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-04T14:25:00+08:00" pubdate data-updated="true">Nov 4<span>th</span>, 2014</time>
        
         | <a href="/blog/2014/11/04/uml-xie-zuo-tu/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><h3>协作图(也叫通讯图collaboration diagram)</h3>

<pre><code> 显示对象之间的交互，强调交互的空间结构
</code></pre>

<h3>协作图构成</h3>

<ul>
<li>1.对象：参与交互的元素</li>
<li>2.链接：用来标识消息在不同对象之间传递方向与关系。</li>
<li>3.消息：协作图中对象与对象之间的通信方式。</li>
</ul>


<h3>协作图示例</h3>

<p><img src="/images/post/2014-11-04-uml-xie-zuo-tu/collaboration_diagram.jpg" alt="image" /></p>
</div>
  
  


    </article>
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/03/uml-huo-dong-tu/">Uml活动图</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-03T17:21:00+08:00" pubdate data-updated="true">Nov 3<span>rd</span>, 2014</time>
        
         | <a href="/blog/2014/11/03/uml-huo-dong-tu/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><h3>活动图(Activity Diagram)</h3>

<pre><code>UML用于对系统的动态行为建模的另一种常用工具，
它描述活动的顺序，展现从一个活动到另一个活动的控制流。
活动图在本质上是一种流程图。
活动图着重表现从一个活动到另一个活动的控制流，是内部处理驱动的流程
</code></pre>

<h3>活动图图参考如下：</h3>

<p><img src="/images/post/2014-11-03-uml-huo-dong-tu/activity_diagram.jpg" alt="image" /></p>
</div>
  
  


    </article>
  
  
    <article>
      
  <header>
    
      <h1 class="entry-title"><a href="/blog/2014/11/03/uml-zhuang-tai-tu/">Uml状态图</a></h1>
    
    
      <p class="meta">
        








  


<time datetime="2014-11-03T17:20:00+08:00" pubdate data-updated="true">Nov 3<span>rd</span>, 2014</time>
        
         | <a href="/blog/2014/11/03/uml-zhuang-tai-tu/#disqus_thread">Comments</a>
        
      </p>
    
  </header>


  <div class="entry-content"><h3>状态图(Statechart Diagram)</h3>

<pre><code>描述一个实体基于事件反应的动态行为，显示该实体如何根据当前所处的状态对不同的事件做出反应的。 
</code></pre>

<h3>状态图参考如下：</h3>

<p><img src="/images/post/2014-11-03-uml-zhuang-tai-tu/state_diagram.jpg" alt="image" /></p>
</div>
  
  


    </article>
  
  <div class="pagination">
    
      <a class="prev" href="/blog/page/4/">&larr; Older</a>
    
    <a href="/blog/archives">Blog Archives</a>
    
    <a class="next" href="/blog/page/2/">Newer &rarr;</a>
    
  </div>
</div>
<aside class="sidebar">
  
    <section>
  <h1>关于我</h1>
  <p>律威,QQ:309235009 微信:ksnowlv</p>
  <p>手机单机游戏/手机网游封神online/手机阅读/腾讯iOS地图客户端&实时公交&开放API(地图&街景)/iPad/iPhone淘宝客户端及性能优化</p>
  <p>目前在银客做银客/简理财/&#8230;</p>
  <p>能做一点,是一点;不求大成,不求一万年;积少成多,水到渠成!</p>
</section>
<section>
  <h1>最近发布</h1>
  <ul id="recent_posts">
    
      <li class="post">
        <a href="/blog/2017/04/26/android-drawable/">Android drawable</a>
      </li>
    
      <li class="post">
        <a href="/blog/2017/04/22/iOS-xia-shi-yong-ffmpeg/">iOS下使用ffmpeg</a>
      </li>
    
      <li class="post">
        <a href="/blog/2015/08/19/ios-you-xian-hou-tai-ren-wu/">iOS有限后台任务</a>
      </li>
    
      <li class="post">
        <a href="/blog/2015/08/19/android-xia-jie-ya-suo/">Android下gzip数据流解压缩</a>
      </li>
    
      <li class="post">
        <a href="/blog/2015/08/19/facebook-infer-de-shi-yong/">FaceBook-infer的使用</a>
      </li>
    
  </ul>
</section>
<section>
  <h1>分类</h1>
    <ul id="category-list"><li><a href='/blog/categories/android-jie-ya-suo/'>Android-解压缩 (1)</a></li><li><a href='/blog/categories/androidduo-xian-cheng/'>Android多线程 (3)</a></li><li><a href='/blog/categories/androidcha-jian/'>Android插件 (1)</a></li><li><a href='/blog/categories/androidhui-tu-./'>Android绘图。 (1)</a></li><li><a href='/blog/categories/androidwang-luo/'>Android网络 (1)</a></li><li><a href='/blog/categories/git/'>git (6)</a></li><li><a href='/blog/categories/githubbo-ke/'>github博客 (8)</a></li><li><a href='/blog/categories/ios/'>iOS (6)</a></li><li><a href='/blog/categories/ios-block/'>iOS-block (1)</a></li><li><a href='/blog/categories/ios-bug/'>iOS-Bug (2)</a></li><li><a href='/blog/categories/ios-memory/'>iOS-Memory (4)</a></li><li><a href='/blog/categories/ios-push/'>iOS-push (1)</a></li><li><a href='/blog/categories/ios-ui/'>iOS-UI (2)</a></li><li><a href='/blog/categories/ios-you-hua/'>iOS-优化 (1)</a></li><li><a href='/blog/categories/ios-nei-cun/'>iOS-内存 (1)</a></li><li><a href='/blog/categories/ios-ji-chu/'>iOS-基础 (3)</a></li><li><a href='/blog/categories/ios-duo-xian-cheng/'>iOS-多线程 (3)</a></li><li><a href='/blog/categories/ios-cun-chu/'>iOS-存储 (1)</a></li><li><a href='/blog/categories/ios-an-quan/'>iOS-安全 (1)</a></li><li><a href='/blog/categories/ios-wang-luo/'>iOS-网络 (13)</a></li><li><a href='/blog/categories/ios-jie-ya-suo/'>iOS-解压缩 (1)</a></li><li><a href='/blog/categories/ios-she-ji-mo-shi/'>iOS-设计模式 (1)</a></li><li><a href='/blog/categories/ios-diao-shi/'>iOS-调试 (1)</a></li><li><a href='/blog/categories/iosyou-hua/'>iOS优化 (1)</a></li><li><a href='/blog/categories/iosji-chu/'>iOS基础 (2)</a></li><li><a href='/blog/categories/iosyin-pin/'>iOS音频 (1)</a></li><li><a href='/blog/categories/mac/'>Mac (4)</a></li><li><a href='/blog/categories/mac-duo-xian-cheng/'>Mac-多线程 (1)</a></li><li><a href='/blog/categories/nginx/'>nginx (3)</a></li><li><a href='/blog/categories/php/'>php (3)</a></li><li><a href='/blog/categories/python/'>python (12)</a></li><li><a href='/blog/categories/swift/'>swift (11)</a></li><li><a href='/blog/categories/uml/'>UML (8)</a></li><li><a href='/blog/categories/xcode/'>Xcode (11)</a></li><li><a href='/blog/categories/chan-pin-she-ji/'>产品设计 (2)</a></li><li><a href='/blog/categories/gong-ju/'>工具 (2)</a></li><li><a href='/blog/categories/shu-ju-ku/'>数据库 (2)</a></li><li><a href='/blog/categories/sheng-huo-pian-duan/'>生活片段 (10)</a></li><li><a href='/blog/categories/zhi-ye-sheng-ya/'>职业生涯 (7)</a></li><li><a href='/blog/categories/du-shu/'>读书 (2)</a></li></ul>
</section>
<section>
  <h1>外部链接</h1>
    <ul id="外部链接">
    	<li><a href="https://developer.apple.com">苹果开发者中心</a> </li>
    	<li><a href="http://stackoverflow.com/questions/tagged/ios">stackoverflow</a></li>
    	<li><a href="http://ksnowlv.blog.163.com/blog/#m=0">ksnowlv网易博客</a></li>
	</ul>
</section>

  
</aside>

    </div>
  </div>
  <footer role="contentinfo"><p>
  Copyright &copy; 2017 - 律威 -
  <span class="credit">Powered by <a href="http://octopress.org">Octopress</a></span>

  <script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id='cnzz_stat_icon_1253538110'%3E%3C/span%3E%3Cscript src='" + cnzz_protocol + "v1.cnzz.com/z_stat.php%3Fid%3D1253538110%26online%3D1' type='text/javascript'%3E%3C/script%3E"));</script>

  <script type="text/javascript">
var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F4c1727a94ea20751730e8a556dbdbf82' type='text/javascript'%3E%3C/script%3E"));
</script>

</p>



</footer>
  

<script type="text/javascript">
      var disqus_shortname = 'ksnowlv';
      
        
        var disqus_script = 'count.js';
      
    (function () {
      var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
      dsq.src = 'http://' + disqus_shortname + '.disqus.com/' + disqus_script;
      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    }());
</script>








</body>
</html>
